home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / Borland / Borland C++ For TASM / USRGUIDE.PAK / COUNTER.CPP < prev    next >
C/C++ Source or Header  |  1996-02-21  |  2KB  |  65 lines

  1. /* Turbo Assembler example. Copyright (c) 1993 By Borland International, Inc.
  2.  
  3.    COUNTER.CPP
  4.  
  5.    Usage: bcc counter.cpp countadd.asm
  6.  
  7.    From the Turbo Assembler User's Guide 
  8.    Ch. 18: Interfacing Turbo Assembler with Borland C++
  9. */
  10.  
  11. #include <stdio.h>
  12.  
  13. class counter {
  14.      // Private member variables:
  15.      int count;         // The ongoing count
  16.    public:
  17.         counter(void){ count=0; }
  18.         int  get_count(void){return count;}
  19.  
  20.         // Two functions that will actually be written 
  21.         // in assembler: 
  22.         void increment(void);
  23.         void add(int what_to_add=-1); 
  24.          // Note that the default value only
  25.          // affects calls to add, it does not
  26.          // affect the code for add.
  27. };
  28.  
  29. extern "C" {
  30.   // To create some unique, meaningful names for the 
  31.   // assembler routines, prepend the name of the class 
  32.   // to the assembler routine. Unlike some assemblers, 
  33.   // Turbo Assembler has no problem with long names.
  34.   void counter_increment(int *count);    // We will pass a 
  35.                                          // pointer to the
  36.                                          // count variable. 
  37.                                          // Assembler will
  38.                                          // do the incrementing.
  39.   void counter_add(int *count,int what_to_add);
  40. }
  41.  
  42. void counter::increment(void)
  43. {
  44.   counter_increment(&count);
  45. }
  46.  
  47. void counter::add(int what_to_add)
  48. {
  49.   counter_add(&count, what_to_add);
  50. }
  51.  
  52. int main()
  53. {
  54.    counter Counter;
  55.  
  56.    printf( "Before count: %d\n", Counter.get_count() );
  57.    Counter.increment();
  58.    Counter.add( 5 );
  59.    printf( "After count:  %d\n", Counter.get_count() );
  60.    return 0;
  61. }
  62.  
  63.  
  64.  
  65.